<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <!-- 引入样式 -->
    <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
    <!-- 引入组件库 -->
    <script src="https://unpkg.com/element-ui/lib/index.js"></script>
</head>
<style>
    .box {
        width: 400px;
        height: 400px;
        border: 1px solid #ccc;
        margin: auto;
        padding: 20px;
    }
</style>

<body>
    <div id="app">
        <el-button type="primary" @click="getJokes">获取笑话</el-button>
        <div class="box">
            <p>{{joke}}</p>
        </div>
    </div>
</body>
<script>
    // 接口：获取一条笑话
    // 请求地址：https://autumnfish.cn/api/joke
    // 请求方法：get
    // 请求参数：无
    // 响应内容：随机笑话
    new Vue({
        el: '#app',
        data: {
            joke: ''
        },
        methods: {
            // 第一种

            // getJokes() {
            //     // console.log(this);这里的tihs是vue的实例
            //     axios.get('https://autumnfish.cn/api/joke').then(function (response) {
            //         // console.log(response);
            //         // console.log(this);但是这里的this是window,所以这里用this.joke=response.data是不对的，this的指向都不一样
            //         this.joke = response.data    //所以这里获取到的数据是不能够同步到vue里面的data上的
            //     }, function (error) {
            //         console.log(error);

            //     })
            // },

            // 第二种
            // getJokes() {
            //     var that = this;  //这里改变了一种方式，先把this改成that,下面用的时候就可以直接用that了
            //     console.log(that);

            //     axios.get('https://autumnfish.cn/api/joke').then(function (response) {
            //         console.log(response);
            //         that.joke = response.data  //这里是可以正常使用的，因为this是同一个对象，

            //     }, function (error) {
            //         console.log(error);
            //         console.log(that);
            //     })
            // },

            // 第三种

            // getJokes() {
            //     console.log(this);

            //     axios.get('https://autumnfish.cn/api/joke').then((response) => { //这里使用箭头函数，就可以解决this指向的问题
            //         console.log(this);

            //         console.log(response);
            //         this.joke = response.data
            //     }, (error) => {
            //         console.log(error);

            //     })
            // },

            // 第四种

            // async getJokes() {
            //     let bian = await axios.get('https://autumnfish.cn/api/joke')
            //     console.log(bian);
            //     console.log(bian.data);

            //     // let { data: res } = await axios.get('https://autumnfish.cn/api/joke')
            //     // console.log(res);

            //     // if (res.status !== 200) {
            //     //     return console.log("请求失败");
            //     // }
            //     this.joke = bian.data
            // },


            async getJokes() {
                // let shuju = await axios.get('https://autumnfish.cn/api/joke/list?num=3')
                // console.log(shuju);

                let { data: res } = await axios.get('https://autumnfish.cn/api/joke/list?num=1')
                // console.log(res);
                console.log(res.jokes);

                this.joke = res.jokes
            }
        },

    })
</script>

</html>